/*
	File:		EntityController.h
	Author:		dmonroe
	Date:		1/12/2012
	Copyright:	Full Sail University

	Purpose:	Base class for game object controllers
*/

#ifndef ENTITYCONTROLLER_H
#define ENTITYCONTROLLER_H

class CEntity;

class CEntityController
{
public:
	CEntityController( void );
	virtual ~CEntityController( void );

	// CEntityController Interface:
	virtual bool	Update				( const CEntity* pEntity, float fElapsedTime );
	virtual bool	ShouldPerform		( const CEntity* pEntity );
	virtual float	ShouldPerformAction	( const CEntity* pEntity, unsigned long ulActionID );
	

	void	AddRef	( void );	
	void	Release	( void );
	
private:
	// reference count
	unsigned long		m_ulReferenceCount;
};

#endif //ENTITYCONTROLLER_H
